#include <stdio.h>
//#include "add_graphic_list.h"
//#include "remove_graphic_list.h"
#include "List.h"

int main(){
	int option;       // Cria variavel para armazenar a operacao a ser realizada
	int fim=0;        // Cria variavel para verificar o fim do programa
	char name[50];    // Cria variavel para armazenar o nome digitado
	float vtotal=0;
	
    // Cria uma lista vazia. A implelemtacao de lista esta em List.h
	TipoLista *lista=criarLista();
  
	while(fim!=1){
		// Menu principal
		printf("\n*******************************************");
		printf("\n|  TRABALHO DE TECNICAS DE PROGRAMACAO   |");
		printf("\n|  GERENCIAMENTO DE POLIEDROS COM P.E.   |");
		printf("\n|                                        |");
		printf("\n| Equipe:                                |");
		printf("\n|  - Daniel R Matos                      |");
		printf("\n|  - Edmundo Sousa                       |");
		printf("\n|  - Renato Busatto                      |");
		printf("\n|  - Tiago Leite                         |");
		printf("\n|                                        |");
		printf("\n|  Bentos Card nº 0557 5115 0860 5885    |");
		printf("\n|                                        |");
		printf("\n*******************************************");

		printf("\nDigite a opcao desejada: ");
		printf("\n1) Adicionar um poliedro");
		printf("\n2) Remover um poliedro");
		printf("\n3) Exibir lista de poliedros");
		printf("\n4) Ordenar lista de poliedros por nome");
		printf("\n5) Ordenar lista de poliedros por volume");
		printf("\n6) Exibir o volume total dos poliedros");
		printf("\n0) Sair do programa");
		printf("\nSua escolha: ");
		scanf("%d",&option);
		printf("\n");

		switch(option){	// Avalia a variavel opcao
		    // Inclui um grafico na lista
		    case 1:
				insert_graphic(lista);
			break;

		    case 2:
				printf("Digite o nome do poliedro: ");
				scanf("%s",&name);
				if(remove_graphic_name(lista,name))
					printf("Poliedro removido com sucesso!\n");
				else
					printf("Poliedro nao encontrado!\n");
			break;

		    // Imprime a lista
		    case 3:
				print_list(1,lista);
			break;
			
			// Ordena por nome
		    case 4:
				order_graphic_name(lista);
				printf("Lista de poliedros ordenada com sucesso!\n");
			break;
			
		    // Ordena por volume
		    case 5:
				order_graphic_volume(lista);
				printf("Lista de poliedros ordenada com sucesso!\n");
			break;
			
			// Imprime o volume total da lista
			case 6:
				volume_total(lista);
				break;
			
		    // Sai do programa
		    case 0:
				printf("Good Bye!\n");
				fim=1;
			break;

		    // Se nao digitar opcao valida
		    default:
				printf("Opcao invalida!\n");
				break;
		}
		esperar();
		system("clear || cls");
	}
  return 0;
}

